home *** CD-ROM | disk | FTP | other *** search
/ Aminet 12 / Aminet 12 (1996)(GTI - Schatztruhe)[!][Jun 1996].iso / Aminet / dev / e / framework.lha / fw / wbAppWindow.e < prev    next >
Encoding:
Text File  |  1996-02-01  |  1.6 KB  |  58 lines

  1.  
  2. -> wbAppWindow is an abstraction of WB AppWindows.
  3.  
  4. -> Copyright © Guichard Damien 01/04/1996
  5.  
  6. OPT MODULE
  7. OPT EXPORT
  8.  
  9. MODULE 'wb','workbench/workbench','workbench/startup'
  10. MODULE 'utility/tagitem','intuition/intuition'
  11. MODULE 'gadtools','libraries/gadtools'
  12. MODULE 'fw/wbObject','fw/wbWindow'
  13.  
  14. OBJECT wbAppWindow OF wbWindow
  15.   appWin
  16. ENDOBJECT
  17.  
  18. -> Create a window.
  19. -> Return FALSE if failed.
  20. PROC create(menus:PTR TO newmenu,visual,taglist) OF wbAppWindow HANDLE
  21.   IF gadtoolsbase=NIL THEN Raise(0)
  22.   IF workbenchbase=NIL THEN Raise(0)
  23.   IF menus
  24.     self.menus:=CreateMenusA(menus,NIL)
  25.     IF self.menus=NIL THEN Raise(0)
  26.     IF LayoutMenusA(self.menus,visual,
  27.       [GTMN_NEWLOOKMENUS,TRUE,TAG_DONE])=FALSE THEN Raise(0)
  28.   ENDIF
  29.   self.window:=OpenWindowTagList(NIL,taglist)
  30.   IF self.window=NIL THEN Raise(0)
  31.   self.port:=self.window.userport
  32.   IF menus THEN IF SetMenuStrip(self.window,self.menus)=FALSE THEN Raise(0)
  33.   Gt_RefreshWindow(self.window,NIL)
  34.   self.appWin:=AddAppWindowA(0,0,self.window,self.port,NIL)
  35.   IF self.appWin=NIL THEN Raise(0)
  36.   RETURN TRUE
  37. EXCEPT
  38.   self.remove()
  39. ENDPROC FALSE
  40.  
  41. -> Handle the receipt of a message at the object's MsgPort.
  42. PROC handleMessage(appMsg:PTR TO appmessage) OF wbAppWindow
  43.   IF appMsg.type=MTYPE_APPWINDOW THEN
  44.     RETURN self.handleDroppedIcons(appMsg.arglist)
  45. ENDPROC SUPER self.handleMessage(appMsg)
  46.  
  47. -> Handle Icons dropped into AppWindow.
  48. PROC handleDroppedIcons(argList:PTR TO wbarg) OF wbAppWindow IS PASS
  49.  
  50. -> Remove the window.
  51. PROC remove() OF wbAppWindow
  52.   IF self.appWin THEN RemoveAppWindow(self.appWin)
  53.   IF self.window THEN CloseWindow(self.window)
  54.   IF self.menus THEN FreeMenus(self.menus)
  55.   self.window:=NIL
  56. ENDPROC
  57.  
  58.